import org.junit.Test;

/**
 * 数组 Array
 * 数组相当于一堆相同数据类型的数据
 */
public class 数组 {
    //1.数组定义：4种 创建数组初始化（静态初始化：给定值I动态初始化：无给定值）
    @Test
    public void testArray(){
        //注意：数组定义长度，不能改变
        int[] arr1=new int[4];//Java推荐写法 动态初始化
        int arr2[]=new int[4];//c推荐写法Java兼容 动态初始化
        int[] arr3={};//静态初始化数组，元素可以直接使用
        int[] arr4=new int[]{1,2,3};//动态初始化
        //数组：内部存数据叫做元素？
        //从arr3取出2的元素   数组名 下标
        System.out.println(arr3[1]);
        //从arr3的长度
        System.out.println(arr3.length);
        //从arr4获取到第四个元素值 数值下标越界异常；下标超出数组长度范围
        System.out.println(arr4[4]);//报错ArrayIndexOutOfBoundsException
    }
    /**
     * 数组的迭代（遍历：输出数组所有元素值）三种
     * 1.普通迭代方式：for
     * 2.增强for方式：推荐，JDK1.5之后
     * 3.工具类:Arrays
     */
    @Test
    public void testIterate() {
        int[] arr = {1, 2, 3, 4};//静态初始化数组
        for (int i = 0; i < 4; i++) {//拿数组下标
            System.out.println(arr[i]);
        }
        //for（int i=0;i<arr.length;i++）{//拿数组下标
        // System.out.println(j)
        // }
        //增强for jdk1.5 遍历数组目的：拿元素值
        for（int j:arr）{//增强for语法：（遍历数据类型 引用：数组名）
            // System.out.println(j);
            // }

    //工具类：Arrays.toString()直接打印数组元素值
            System.out.println(Arrays.toString(arr));
            @Test
                    public void testCopy(){
                //字符数组，数组长固定2个
            char[] arr={'唐'，'山'}; //想法：长度增加为4
            //扩容：增加四个 克隆新的数组
            char[] temp=Arrays.copuOf(arr,newLength:4);
            arr=temp;
            System.out.println(arr);
            //需求：输出唐山工业

            }
            /**
             * 数组输出元素时，会有一些不同【查看数据是否是数组】
             * 数据类型：基础数据类型+引用类型
             */
            @Test
            public void  testArrays(){
                //字符数据
                char[] china={'中','国'};
                System.out.println(china);  //输出：中国   字符串：字符数组
                //输出语句--JavaOOP面向对象：重载，字符自动拼接
                //数值数组
                int[] i={1,2};
                System.out.println(i);//输书：[I数据类型 @ 连接符 3d82c5f3地址值]
            }
        }

    }
    }
}
